# TODO: 引入合适的包
from PIL import Image
import numpy as np
from skimage import io
import matplotlib.pyplot as plt
# TODO: 用 PIL 引入 x_8bit.png 图片，并将结果存储在变量 img_0 中
img_0 = Image.open('x_8bit.png') 
# TODO: 定义信息字符串 img_0_info，包含 img_0 的变量类型【结果参考图示】
img_0_info=f'img_0 type: {type(img_0)}'
# TODO: 将 img_0 转换为 numpy 数组，并将结果存储在变量 img_1 中
# TODO: 把 img_1 图像左上角调整到最亮
img_1 = np.array(img_0) 
img_1[0,0]=255 
# TODO: 定义关于 img_1 的信息长字符串 img_1_info，包括：【结果参考图示】
# 1. 变量类型
# 2. 变量形状
# 3. 变量的元素的类型
img_1_info=f'''         
img_1 type: {type(img_1)}
img_1 shape: {img_1.shape}
img_1 element type: {img_1.dtype}
'''

# TODO: 用 skimage 保存 img_1 到 x_out.png 文件中
io.imsave('x_out.png',img_1)
# TODO: 用 skimage 读取 x_out.png 文件，并将结果存储在变量 img_out 中
img_out = io.imread('x_out.png')
# TODO: 定义一个双子图画板，大小设置为宽10高5，并将画板存储在变量 fg 中，子图轴存储在变量 ax 中
fg,ax=plt.subplots(1,2,figsize=(10,5))
# TODO: 在第1个子图中以灰度图(灰白配色)的形式直接绘制 img_0 并添加标题 img_0_info(左对齐)
ax[0].imshow(img_0,cmap='gray')
ax[0].set_title(img_0_info, loc='left')
# TODO: 在第2个子图中以灰度图(灰白配色)的形式直接绘制 img_out 并添加标题 img_1_info(左对齐)
ax[1].imshow(img_out,cmap='gray')
ax[1].set_title(img_1_info, loc='left')
# TODO: 调整多子图位置
plt.tight_layout()
# TODO: 显示画板
plt.savefig('result_x.png',bbox_inches='tight')